import pandas as pd
from sklearn.model_selection import train_test_split

# 此文件负责数据的读取和预处理。
# load_data 函数从指定的 Excel 文件中读取数据，并根据批次名称筛选数据，将筛选后的数据存储在 batches 列表中，同时将批次名称存储在 batch_names 列表中。


def load_data(file_path, sheet_name):
    """
    从 Excel 文件中加载数据并进行预处理
    :param file_path: Excel 文件的路径
    :param sheet_name: 工作表名称
    :return: 处理后的批次数据列表和批次名称列表
    """
    data = pd.read_excel(file_path, sheet_name=sheet_name)

    # # 读取数据
    # file_path = 'C:\\Users\\严如梦\\Desktop\\文献2023\\康缘\\其他\\300701\\副本T3007A.xlsx'
    # sheet_name = 'Sheet2'

    feature_columns = data.columns[2:-1]
    batch1 = data[data.iloc[:, 1] == 'Z241028-1']
    batch2 = data[data.iloc[:, 1] == 'Z241029-1']


    def preprocess_batch(batch):
        X = batch.iloc[:, 2:-1].apply(pd.to_numeric, errors='coerce').values
        Y = batch.iloc[:, -1].apply(pd.to_numeric, errors='coerce').values
        return X, Y


    X_batch1, Y_batch1 = preprocess_batch(batch1)
    X_batch2, Y_batch2 = preprocess_batch(batch2)


    batches = [(X_batch1, Y_batch1), (X_batch2, Y_batch2)]
    batch_names = ['Z241028-1', 'Z241029-1']

    # 打印特征列名
    print(f"特征列名: {feature_columns.tolist()}")

    # 打印目标列名
    print(f"目标列名: {data.columns[-1]}")

    # 打印样本数量
    print(f"批次 'Z241028-1' 样本数量: {X_batch1.shape}")
    print(f"批次 'Z241029-1' 样本数量: {X_batch2.shape}")

    return batches, batch_names

# if __name__ == '__main__':
#     load_data('C:\\Users\\严如梦\\Desktop\\文献2023\\康缘\\其他\\300701\\副本T3007A.xlsx', 'Sheet2')